package com.imooc.demo.handler;


import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;

//直接与前端页面交互
@ControllerAdvice
//对不同的文件编写不同的异常处理方法来捕获自定义的Exception,一般不同的class等文件会抛出
/*一般是针对不同的业务逻辑类编写不同的业务逻辑异常处理类，
业务逻辑类会抛出一个自定义的异常类，再通过对应的异常处理类的的value的值处理抛出的不同的异常类。
如下方法是处理value = Exception.class的异常的方法
 */
public class GlobalExceptionHandler {
    //本方法是处理继承自Exception的所有的异常，直接返回错误信息
    @ExceptionHandler(value = Exception.class)//处理所有的Exception
    @ResponseBody//返回错误信息
    private Map<String,Object> exceptionHandler(HttpServletRequest req,Exception e){
        Map<String,Object> modelMap = new HashMap<String, Object>();
        modelMap.put("success",false);
        modelMap.put("errMsg",e.getMessage());
        return modelMap;
    }





}
